package work.jame.blog.pojo.vo;

import work.jame.blog.pojo.ArticleClassification;
import work.jame.blog.pojo.ArticleTag;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author : Jame
 * @date : 2023-05-18 14:56
 **/
public class ArticleVO {

    /**
     * 文章id
     */
    private Long id;

    /**
     * 标题
     */
    private String title;

    /**
     * 正文
     */
    private String content;

    /**
     * 文章摘要
     */
    private String articleAbstract;

    /**
     * 喜欢这篇文章的数量
     */
    private Long likeNumber;

    /**
     * 收藏这篇博客的数量
     */
    private Long collectNumber;

    /**
     * 观看数量
     */
    private Long viewNumber;

    /**
     * 收到的米粒数量
     */
    private Long riceGrainsNumber;

    /**
     * 发布文章的日期
     */
    private LocalDateTime publishDateTime;

    /**
     * 文章标签
     */
    private List<ArticleTag> tags;

    /**
     * 文章分类
     */
    private ArticleClassification articleClassification;

    /**
     * 当前用户是否喜欢了这篇文章
     */
    private Boolean currentUserLike;

    /**
     * 当前用户是否收藏了这篇文章
     */
    private Boolean currentUserCollect;

    /**
     * 当前用投喂了这篇文章多少米粒
     */
    private Long currentUserFeedRiceGrainsNumber;

    /**
     * 该作者的下一篇文章id
     */
    private Long nextArticleId;
    /**
     * 该作者的上一篇文章id
     */
    private Long prevArticleId;
    /**
     * 该作者的下一篇文章标题
     */
    private String nextArticleTitle;
    /**
     * 该作者的上一篇文章标题
     */
    private String prevArticleTitle;

    public Long getNextArticleId() {
        return nextArticleId;
    }

    public void setNextArticleId(Long nextArticleId) {
        this.nextArticleId = nextArticleId;
    }

    public Long getPrevArticleId() {
        return prevArticleId;
    }

    public void setPrevArticleId(Long prevArticleId) {
        this.prevArticleId = prevArticleId;
    }

    public String getNextArticleTitle() {
        return nextArticleTitle;
    }

    public void setNextArticleTitle(String nextArticleTitle) {
        this.nextArticleTitle = nextArticleTitle;
    }

    public String getPrevArticleTitle() {
        return prevArticleTitle;
    }

    public void setPrevArticleTitle(String prevArticleTitle) {
        this.prevArticleTitle = prevArticleTitle;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Long getLikeNumber() {
        return likeNumber;
    }

    public void setLikeNumber(Long likeNumber) {
        this.likeNumber = likeNumber;
    }

    public Long getCollectNumber() {
        return collectNumber;
    }

    public void setCollectNumber(Long collectNumber) {
        this.collectNumber = collectNumber;
    }

    public Long getRiceGrainsNumber() {
        return riceGrainsNumber;
    }

    public void setRiceGrainsNumber(Long riceGrainsNumber) {
        this.riceGrainsNumber = riceGrainsNumber;
    }

    public LocalDateTime getPublishDateTime() {
        return publishDateTime;
    }

    public void setPublishDateTime(LocalDateTime publishDateTime) {
        this.publishDateTime = publishDateTime;
    }

    public List<ArticleTag> getTags() {
        return tags;
    }

    public void setTags(List<ArticleTag> tags) {
        this.tags = tags;
    }

    public ArticleClassification getArticleClassification() {
        return articleClassification;
    }

    public void setArticleClassification(ArticleClassification articleClassification) {
        this.articleClassification = articleClassification;
    }

    public Long getViewNumber() {
        return viewNumber;
    }

    public void setViewNumber(Long viewNumber) {
        this.viewNumber = viewNumber;
    }

    public Boolean getCurrentUserLike() {
        return currentUserLike;
    }

    public void setCurrentUserLike(Boolean currentUserLike) {
        this.currentUserLike = currentUserLike;
    }

    public Boolean getCurrentUserCollect() {
        return currentUserCollect;
    }

    public void setCurrentUserCollect(Boolean currentUserCollect) {
        this.currentUserCollect = currentUserCollect;
    }

    public Long getCurrentUserFeedRiceGrainsNumber() {
        return currentUserFeedRiceGrainsNumber;
    }

    public void setCurrentUserFeedRiceGrainsNumber(Long currentUserFeedRiceGrainsNumber) {
        this.currentUserFeedRiceGrainsNumber = currentUserFeedRiceGrainsNumber;
    }

    public String getArticleAbstract() {
        return articleAbstract;
    }

    public void setArticleAbstract(String articleAbstract) {
        this.articleAbstract = articleAbstract;
    }

    @Override
    public String toString() {
        return "ArticleVO{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", content='" + content + '\'' +
                ", articleAbstract='" + articleAbstract + '\'' +
                ", likeNumber=" + likeNumber +
                ", collectNumber=" + collectNumber +
                ", viewNumber=" + viewNumber +
                ", riceGrainsNumber=" + riceGrainsNumber +
                ", publishDateTime=" + publishDateTime +
                ", tags=" + tags +
                ", articleClassification=" + articleClassification +
                ", currentUserLike=" + currentUserLike +
                ", currentUserCollect=" + currentUserCollect +
                ", currentUserFeedRiceGrainsNumber=" + currentUserFeedRiceGrainsNumber +
                ", nextArticleId=" + nextArticleId +
                ", prevArticleId=" + prevArticleId +
                ", nextArticleTitle='" + nextArticleTitle + '\'' +
                ", prevArticleTitle='" + prevArticleTitle + '\'' +
                '}';
    }
}
